def ok(x, r, s, h, sn, y, xn, q):
    # 如果去重后长度不足8了，说明有重复的，直接返回空即可
    if len(set([x, r, s, h, sn, y, xn, q])) < 8: return
    xrsh = int(f"{x}{r}{s}{h}")
    syxr = int(f"{sn}{y}{xn}{r}")
    sysrq = int(f"{sn}{y}{s}{r}{q}")
    # 满足条件返回True
    if xrsh + syxr == sysrq:
        return True
    # 否则也是默认返回空
    # 因为直接if的时候，False和None都是进不去的，所以不用特意写上。

n = [i for i in range(10)]
m = [i for i in range(1, 10)]
# 一共这些变量
# x, r, s, h, sn, y, xn, q
# 直接无脑遍历的话会花很久。如果是真正比赛的时候，遇到这种情况，
# 你可以估算一下用时，决定要不要直接让它这么跑下去，去思考别的题。
# 或者就再想办法优化一下。
# 估算用时的方法还挺多的，比如这种循环的，你可以在某一层循环输出一下
# 看他多久输出一次，然后再根据他是第几层循环判断总用时。
# 或者根据循环次数，大致算一下，需要循环多少次，比如这个的是
# 9*10*10*10*9*10*10*10，大概1e8，额，那我咋跑了那么久。。总之还是可以接收的复杂度。
# 或者干脆就先等他一会不管着，比如我这个就没管它，就打注释，还没打完它就跑出来了。
for x in m:
    for r in n:
        for s in n:
            for h in n:
                for sn in m:
                    for y in n:
                        for xn in n:
                            for q in n:
                                if ok(x, r, s, h, sn, y, xn, q):
                                    print(f"{sn}{y}{xn}{r}")
# 结果是：1085
# -------------------------------------------------------------------------------

# 比赛环境为python3.8.6版本自带的IDLE，最好早点熟悉一下。。这个东西的提示时有时无

# 菜单栏最右边的Help的Python Docs 比赛时候也可以看，不过建议还是提前多了解了解，

# 比赛的时候至少知道在文档找什么能用的上。

# IDLE是下载Python时自带的，在按住win+s搜索IDLE就能搜到了。

# 然后点左上角的File可以创建新文件，然后按F5可以运行。
